 CREATE DATABASE SinhNhatDB
GO
USE SinhNhatDB
GO

--chứa account đăng nhập hệ thống
--hệ thống chỉ có duy nhất 1 quyền admin
--IsLock bằng true thì account này ko thể login đc nữa
CREATE TABLE ACCOUNT
(
	AccountID uniqueidentifier primary key,
	Fullname nvarchar(50),
	Username varchar(20),
	[Password] varchar(36),
	IsLock bit
)

GO
--chứa loại bài viết, loại sản phẩm, loại dịch vụ
--Parent chứa ID của category cha
--Parent bằng null nghĩa thì đây là nút lá
CREATE TABLE CATEGORY
(
	CategoryID uniqueidentifier primary key,
	Url nvarchar(200) unique,
	CategoryName nvarchar(100),
	Parent uniqueidentifier,
	Position int,
)
GO

CREATE TABLE CategoryService
(
	CategoryServiceID uniqueidentifier primary key,
	Url nvarchar(200) unique,
	CategoryName nvarchar(100),
	Parent uniqueidentifier,
	Position int,
)
GO

--chứa bài viết tĩnh
--thuộc tính IsLock bằng true thì bài viết bị ẩn đi
CREATE TABLE ARTICLE
(
	ArticleID uniqueidentifier primary key,
	Url nvarchar(200) unique,
	AccountID uniqueidentifier,
	Title nvarchar(200),
	Content nvarchar(max),
	CreateDate datetime,
	IsLock bit
)
GO

--chứa những quảng cáo, thông tin được hiển thị 2 bên website
--Order là thứ tự hiển thị
--ShowIn là khu vực hiển thị: 0 ẩn, 1 trái, 2 phải
CREATE TABLE Item
(
	ItemID uniqueidentifier primary key,
	AccountID uniqueidentifier,
	Url nvarchar(200),
	Name nvarchar(100),
	[Order] int,
	Position int,
	ShowIn int,
)

GO

CREATE TABLE SubItem
(
	SubItemID uniqueidentifier primary key,
	ItemID uniqueidentifier,
	[Order] int,
	Url nvarchar(200),
	Name nvarchar(100),
)
GO

--lưu thông tin sản phẩm
--image chứa url của hình ảnh đại diện
--InStock bằng false nghĩa là hết hàng. Giá trị này do admin set
--IsLock bằng true thì Product này bị ẩn đi
CREATE TABLE PRODUCT
(
	ProductID uniqueidentifier primary key,
	Url nvarchar(200) unique,
	AccountID uniqueidentifier,
	CategoryID uniqueidentifier,
	Name nvarchar(200),
	[Image] nvarchar(100),
	[Description] nvarchar(max),
	Price money,
	CreateDate datetime,
	InStock bit,
	IsLock bit
)
GO

--chứa thông tin một dịch vụ
--image chứa url của hình ảnh đại diện
CREATE TABLE [SERVICE]
(
	ServiceID uniqueidentifier primary key,
	Url nvarchar(200) unique,
	AccountID uniqueidentifier,
	CategoryServiceID uniqueidentifier,
	CreateDate datetime,
	[Image] nvarchar(100),
	Title nvarchar(200),
	Content nvarchar(max),
	IsLock bit
)
GO

--đặt một dịch vụ
CREATE TABLE SERVICEORDER
(
	ServiceOrderID uniqueidentifier primary key,
	ServiceID uniqueidentifier,
	CustomerName nvarchar(100),
	CustomerEmail nvarchar(100),
	CustomerPhone varchar(20),
	CustomerAddress nvarchar(200),
	Note nvarchar(500),
	PaymentID uniqueidentifier,
	BankNumber nvarchar(50),
	BankName nvarchar(50),
	PartyTime datetime,
	NumOfPeople int,
	CreateDate datetime,
	[Status] bit,
)
GO

CREATE TABLE PAYMENT
(
	PaymentID uniqueidentifier primary key,
	Name nvarchar(20)
)
GO

--đơn đặt hàng
CREATE TABLE [Order]
(
	OrderID uniqueidentifier primary key,
	CustomerName nvarchar(100),
	CustomerEmail nvarchar(100),
	CustomerPhone varchar(20),
	CustomerAddress nvarchar(200),
	Note nvarchar(500),
	PaymentID uniqueidentifier,
	BankNumber nvarchar(50),
	BankName nvarchar(50),
	CreateDate datetime,
	Amount money,
	[Status] bit,
)
GO

--chi tiết đơn đặt hàng
--price là giá bán lúc mua hàng
CREATE TABLE ORDERDETAIL
(
	OrderDetailID uniqueidentifier primary key,
	OrderID uniqueidentifier,
	ProductID uniqueidentifier,
	Quantity int,
	Price money
)
GO

--chứa top menu
--order dùng để sắp xếp thứ tự
CREATE TABLE MENU
(
	MenuID uniqueidentifier primary key,
	MenuText nvarchar(50),
	Url nvarchar(200),
	Icon nvarchar(200),
	[Order] int
)
GO

--lưu các tham số
CREATE TABLE PARAMETER
(
	ParameterID uniqueidentifier primary key,
	KeyCode nvarchar(100),
	Value nvarchar(max),
)

/****** Object:  Table [dbo].[COUNT]    Script Date: 08/15/2012 12:18:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[COUNT](
	[IdCounter] [tinyint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[HitCounter] [int] NULL,
	[Today] [int] NULL,
	[Date] [smalldatetime] NULL,
 CONSTRAINT [PK_COUNT] PRIMARY KEY CLUSTERED 
(
	[IdCounter] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[COUNT] ON
INSERT [dbo].[COUNT] ([IdCounter], [HitCounter], [Today], [Date]) VALUES (1, 39, 28, CAST(0xA0AE0000 AS SmallDateTime))
SET IDENTITY_INSERT [dbo].[COUNT] OFF
/****** Object:  Table [dbo].[CENTRALBAR]    Script Date: 08/15/2012 12:18:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CENTRALBAR](
	[IdCentralBar] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[Name] [nvarchar](100) NULL,
	[Link] [nvarchar](100) NULL,
	[Image] [nvarchar](100) NULL,
	[Status] [bit] NULL,
	[Position] [int] NULL,
 CONSTRAINT [PK_CENTRALBAR] PRIMARY KEY CLUSTERED 
(
	[IdCentralBar] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[CENTRALBAR] ON
INSERT [dbo].[CENTRALBAR] ([IdCentralBar], [Name], [Link], [Image], [Status], [Position]) VALUES (3, N'Hình Ảnh Lớp Học 1', N'/san-pham-dao-tao', N'/public/images/587x258%20Slider/1.png', 1, NULL)
INSERT [dbo].[CENTRALBAR] ([IdCentralBar], [Name], [Link], [Image], [Status], [Position]) VALUES (4, N'Hình Ảnh Lớp Học 4', N'/san-pham-dao-tao', N'/public/images/587x258%20Slider/hoi%20thao%20cua%20gai%204.png', 1, NULL)
INSERT [dbo].[CENTRALBAR] ([IdCentralBar], [Name], [Link], [Image], [Status], [Position]) VALUES (5, N'Hình Ảnh Lớp Học 5', N'/san-pham-dao-tao', N'/public/images/587x258%20Slider/hoi%20thao%20cua%20gai%205.png', 1, NULL)
INSERT [dbo].[CENTRALBAR] ([IdCentralBar], [Name], [Link], [Image], [Status], [Position]) VALUES (6, N'Hình Ảnh Lớp Học 6', N'/san-pham-dao-tao', N'/public/images/587x258%20Slider/hoi%20thao%20cua%20gai%206.png', 1, NULL)
INSERT [dbo].[CENTRALBAR] ([IdCentralBar], [Name], [Link], [Image], [Status], [Position]) VALUES (7, N'Hình Ảnh Lớp Học 7', N'/san-pham-dao-tao', N'/public/images/587x258%20Slider/hoi%20thao%20cua%20gai%206.png', 1, NULL)
INSERT [dbo].[CENTRALBAR] ([IdCentralBar], [Name], [Link], [Image], [Status], [Position]) VALUES (8, N'Hình Ảnh Lớp Học 8', N'/san-pham-dao-tao', N'/public/images/587x258%20Slider/hoi%20thao%20cua%20gai%207.png', 1, NULL)
SET IDENTITY_INSERT [dbo].[CENTRALBAR] OFF


GO
ALTER TABLE PRODUCT ADD CONSTRAINT FK_PRODUCT_ACCOUNT FOREIGN KEY (AccountID) REFERENCES  ACCOUNT(AccountID)
GO
ALTER TABLE ARTICLE ADD CONSTRAINT FK_ARTICLE_ACCOUNT FOREIGN KEY (AccountID) REFERENCES ACCOUNT(AccountID)
GO
ALTER TABLE ITEM ADD CONSTRAINT FK_ITEM_ACCOUNT  FOREIGN KEY (AccountID) REFERENCES ACCOUNT(AccountID)
GO
ALTER TABLE [SERVICE] ADD CONSTRAINT FK_SERVICE_ACCOUNT FOREIGN KEY (AccountID) REFERENCES  ACCOUNT(AccountID)
GO
ALTER TABLE PRODUCT ADD CONSTRAINT FK_PRODUCT_CATEGORY FOREIGN KEY (CategoryID) REFERENCES CATEGORY(CategoryID)
GO
ALTER TABLE [SERVICE] ADD CONSTRAINT FK_SERVICE_CATEGORY FOREIGN KEY (CategoryServiceID) REFERENCES CategoryService(CategoryServiceID)
GO
ALTER TABLE ORDERDETAIL ADD CONSTRAINT FK_ORDERDETAIL_ORDER FOREIGN KEY (OrderID) REFERENCES  [ORDER](OrderID)
GO
ALTER TABLE SERVICEORDER ADD CONSTRAINT FK_SERVICEORDER_SERVICE FOREIGN KEY (ServiceID) REFERENCES  [SERVICE](ServiceID)
GO
ALTER TABLE SERVICEORDER ADD CONSTRAINT FK_SERVICEORDER_PAYMENT FOREIGN KEY (PaymentID) REFERENCES  PAYMENT(PaymentID)
GO
ALTER TABLE [ORDER] ADD CONSTRAINT FK_ORDER_PAYMENT FOREIGN KEY (PaymentID) REFERENCES  PAYMENT(PaymentID)
GO
ALTER TABLE ORDERDETAIL ADD CONSTRAINT FK_SERVICEORDER_PRODUCT FOREIGN KEY (ProductID) REFERENCES  PRODUCT(ProductID)
GO
ALTER TABLE SubItem ADD CONSTRAINT FK_SubItem_Item FOREIGN KEY (ItemID) REFERENCES  Item(ItemID)
GO
ALTER TABLE CATEGORY ADD CONSTRAINT FK_CATEGORY_CATEGORY FOREIGN KEY (Parent) REFERENCES  CATEGORY(CategoryID)
GO
ALTER TABLE CategoryService ADD CONSTRAINT FK_CategoryService_CategoryService FOREIGN KEY (Parent) REFERENCES  CategoryService(CategoryServiceID)
GO